-- XSD schema extracted from ITU-T E.115 (05/2007)
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:simpleType name="E115String">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[ -�]*"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="E115StringUb256">
<xsd:restriction base="E115String">
<xsd:minLength value="1"/>
<xsd:maxLength value="256"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="NumericString">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[0-9]*"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="SimpleAttribute">
<xsd:restriction base="xsd:boolean">
<xsd:pattern value="true"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="CharacterSubSet">
<xsd:restriction base="xsd:NCName">
<xsd:enumeration value="basic"/>
<xsd:enumeration value="latin1"/>
<xsd:enumeration value="latin-ext"/>
<xsd:enumeration value="cyrillic"/>
<xsd:enumeration value="greek"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="GeographicalType">
<xsd:restriction base="xsd:NCName">
<xsd:enumeration value="dms"/>
<xsd:enumeration value="dd"/>
<xsd:enumeration value="dec"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:attributeGroup name="CoordinateTypeDescription">
<xsd:attribute name="geodeticDatum" type="E115StringUb256" use="required"/>
<xsd:attribute name="geographical" type="GeographicalType" use="required"/>
</xsd:attributeGroup>
<xsd:attributeGroup name="Coordinate">
<xsd:attribute name="latitude" type="E115StringUb256" use="required"/>
<xsd:attribute name="longitude" type="E115StringUb256" use="required"/>
</xsd:attributeGroup>
<xsd:attributeGroup name="CommAddressService">
<xsd:attribute name="fax" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="pbx" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="txt" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="pub" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="vid" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="pag" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="voice" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="data" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="http" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="ftp" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="eml" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="sms" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="mms" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="emg" type="SimpleAttribute" use="optional"/>
</xsd:attributeGroup>
<xsd:attributeGroup name="InquiryCommAddressChar">
<xsd:attribute name="ftn" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="mob" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="fixed" type="SimpleAttribute" use="optional"/>
</xsd:attributeGroup>
<xsd:attributeGroup name="ReplyCommAddressChar">
<xsd:attributeGroup ref="InquiryCommAddressChar"/>
<xsd:attribute name="prn" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="npn" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="upn" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="old" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="adv" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="nmk" type="SimpleAttribute" use="optional"/>
</xsd:attributeGroup>
<xsd:attributeGroup name="Categories">
<xsd:attribute name="business" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="residential" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="government" type="SimpleAttribute" use="optional"/>
</xsd:attributeGroup>
<xsd:complexType name="E115Message">
<xsd:choice>
<xsd:element name="directoryMessage" type="DirectoryMessage"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="DirectoryMessage">
<xsd:choice>
<xsd:element name="inquiry" type="Inquiry"/>
<xsd:element name="reply" type="Reply"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="Inquiry">
<xsd:sequence>
<xsd:element name="inquiryHeader" type="InquiryHeader"/>
<xsd:element name="inquiryData" type="InquiryData"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="InquiryHeader">
<xsd:all>
<xsd:element name="acceptedReplyTypes" minOccurs="0">
<xsd:complexType>
<xsd:attribute name="provinceList" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="localityList" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="streetList" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="businessCategoryList" type="SimpleAttribute"
use="optional"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="inquiryCoordinateType" minOccurs="0">
<xsd:complexType>
<xsd:attributeGroup ref="CoordinateTypeDescription"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="replyCoordinateType" minOccurs="0">
<xsd:complexType>
<xsd:attributeGroup ref="CoordinateTypeDescription"/>
</xsd:complexType>
</xsd:element>
</xsd:all>
<xsd:attribute name="originatingTerminalCode" use="required">
<xsd:simpleType>
<xsd:restriction base="E115String">
<xsd:length value="8"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="dateAndTime" use="optional">
<xsd:simpleType>
<xsd:restriction base="NumericString">
<xsd:length value="12"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="messageNumber" use="optional">
<xsd:simpleType>
<xsd:restriction base="E115String">
<xsd:length value="4"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="countryName" use="required">
<xsd:simpleType>
<xsd:restriction base="E115String">
<xsd:length value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="providerCode" use="optional">
<xsd:simpleType>
<xsd:restriction base="E115String">
<xsd:length value="3"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="inquiryCharacterSubset" type="CharacterSubSet" use="optional"
default="basic"/>
<xsd:attribute name="replyCharacterSubset" type="CharacterSubSet" use="optional"
default="latin1"/>
<xsd:attribute name="requestedReplyType" use="optional" default="subscriberList">
<xsd:simpleType>
<xsd:restriction base="xsd:NCName">
<xsd:enumeration value="subscriberList"/>
<xsd:enumeration value="provinceList"/>
<xsd:enumeration value="localityList"/>
<xsd:enumeration value="streetList"/>
<xsd:enumeration value="businessCategoryList"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="InquiryData">
<xsd:all>
<xsd:element name="locality" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="subscriberName" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="streetName" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="houseNumber" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="forename" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="headingInTheGuide" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="professionCode" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="countyStateOrProvince" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="category" minOccurs="0">
<xsd:complexType>
<xsd:attributeGroup ref="Categories"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="postalCode" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="nationalDestinationCode" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="NumericString">
<xsd:minLength value="1"/>
<xsd:maxLength value="14"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="commAddress" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="commAddressTypes" minOccurs="0">
<xsd:complexType>
<xsd:attribute name="e164" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="rfc822" type="SimpleAttribute" use="optional"/>
<xsd:attribute name="rfc1738" type="SimpleAttribute" use="optional"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="additionalName" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="commAddressService" minOccurs="0">
<xsd:complexType>
<xsd:attributeGroup ref="CommAddressService"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="commAddressChar" minOccurs="0">
<xsd:complexType>
<xsd:attributeGroup ref="InquiryCommAddressChar"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="searchCoordinate" minOccurs="0">
<xsd:complexType>
<xsd:attributeGroup ref="Coordinate"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="searchRadius" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="NumericString">
<xsd:minLength value="1"/>
<xsd:maxLength value="9"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="matchingRule" minOccurs="0">
<xsd:complexType>
<xsd:attribute name="wordRotation" type="xsd:boolean" use="optional"/>
<xsd:attribute name="phonetic" type="xsd:boolean" use="optional"/>
<xsd:attribute name="alias" type="xsd:boolean" use="optional"/>
</xsd:complexType>
</xsd:element>
</xsd:all>
<xsd:attribute name="sequenceNumber" use="optional" default="0">
<xsd:simpleType>
<xsd:restriction base="NumericString">
<xsd:minLength value="1"/>
<xsd:maxLength value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="geoExpansion" use="optional">
<xsd:simpleType>
<xsd:restriction base="NumericString">
<xsd:minLength value="1"/>
<xsd:maxLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="maxSelectionLevel" type="NumericString" use="optional"
default="99"/>
</xsd:complexType>
<xsd:complexType name="Reply">
<xsd:sequence>
<xsd:element name="replyHeader" type="ReplyHeader"/>
<xsd:element name="selection" type="Selection" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ReplyHeader">
<xsd:all>
<xsd:element name="message" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="replyCoordinateType" minOccurs="0">
<xsd:complexType>
<xsd:attributeGroup ref="CoordinateTypeDescription"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="searchCenter" minOccurs="0">
<xsd:complexType>
<xsd:attributeGroup ref="Coordinate"/>
</xsd:complexType>
</xsd:element>
</xsd:all>
<xsd:attribute name="originatingTerminalCode" use="required">
<xsd:simpleType>
<xsd:restriction base="E115String">
<xsd:length value="8"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="dateAndTime" use="optional">
<xsd:simpleType>
<xsd:restriction base="NumericString">
<xsd:length value="12"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="messageNumber" use="optional">
<xsd:simpleType>
<xsd:restriction base="E115String">
<xsd:length value="4"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="messageCode" use="required">
<xsd:simpleType>
<xsd:restriction base="E115String">
<xsd:length value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="dbSelectionCount" use="optional">
<xsd:simpleType>
<xsd:restriction base="E115String">
<xsd:minLength value="1"/>
<xsd:maxLength value="10"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="Selection">
<xsd:all>
<xsd:element name="nationalDestinationCode" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="NumericString">
<xsd:minLength value="1"/>
<xsd:maxLength value="14"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="commAddress" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="locality" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="subscriberName" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="forename" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="streetName" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="houseNumber" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="supplementaryData" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="subscriberMessage" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="headingInTheGuide" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="professionCode" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="countyStateOrProvince" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="subscriberDescription" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="category" minOccurs="0">
<xsd:complexType>
<xsd:attributeGroup ref="Categories"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="countryCode" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="NumericString">
<xsd:minLength value="1"/>
<xsd:maxLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="postalCode" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="commAddressService" minOccurs="0">
<xsd:complexType>
<xsd:attributeGroup ref="CommAddressService"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="commAddressChar" minOccurs="0">
<xsd:complexType>
<xsd:attributeGroup ref="ReplyCommAddressChar"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="distance" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="additionalName" type="E115StringUb256" minOccurs="0"/>
<xsd:element name="selectionCoordinate" minOccurs="0">
<xsd:complexType>
<xsd:attributeGroup ref="Coordinate"/>
</xsd:complexType>
</xsd:element>
</xsd:all>
<xsd:attribute name="commAddressType" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:NCName">
<xsd:enumeration value="e164"/>
<xsd:enumeration value="rfc822"/>
<xsd:enumeration value="rfc1738"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="selectionLevel" use="optional" default="0">
<xsd:simpleType>
<xsd:restriction base="NumericString">
<xsd:minLength value="1"/>
<xsd:maxLength value="3"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
<xsd:element name="e115Message" type="E115Message"/>
</xsd:schema>